/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package modeles.beans;

import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import modeles.Produit;
import org.primefaces.event.FileUploadEvent;
import utilitaires.ftp.FTPTransfer;

/**
 *
 * @author Fred
 */
@ManagedBean(name = "detailsProduit")
@ViewScoped
public class FormulaireModifProduit extends FormulaireProduit implements Serializable {

    private Produit produit;

    public FormulaireModifProduit() {
        super();
    }

    @Override
    public Produit getProduit() {
        if (produit == null) {
            String id = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id");
            produit = super.getServicesProduits().trouverProduit(id);
        }
        return produit;
    }

    public void sauvegarderModifications() {
        if (super.checkPromotion() && super.checkCategorie()) {
            produit.setRayon(super.trouverRayon(super.getIdRayonSelectionne()));
            if (super.getPromotion().getType().isEmpty()) {
                produit.setPromotion(null);
            }
            if (super.getServicesProduits().modifierProduit(produit, Integer.toString(produit.getEan()))) {
                super.ajouterMessage("Le produit a bien été modifié.", FacesMessage.SEVERITY_INFO);
            } else {
                super.ajouterMessage("Le produit n'a pas pu être modifié.", FacesMessage.SEVERITY_ERROR);
            }
        }
    }

    public void modifierImage(FileUploadEvent event) {
        try {
            if (getProduit().getUrlPhoto() != null || !getProduit().getUrlPhoto().isEmpty()) {
                supprimerImage(getProduit().getUrlPhoto());
            }
            super.uploadImage(event);
        } catch (Exception ex) {
            super.ajouterMessage("L'image n'a pas pu être ajoutée.", FacesMessage.SEVERITY_ERROR);
        }
    }

    private void supprimerImage(String url) throws Exception {
        String fileName = url.substring(url.lastIndexOf('/') + 1);
        String hostFileFullName = "public_html/ShopEasy/img/" + fileName;
        try {
            FTPTransfer.connect();
            FTPTransfer.removeFile(hostFileFullName);
        } finally {
            FTPTransfer.disconnect();
        }
    }
}
